﻿//题目描述
//给定一个长度为n的整数数组a，你需要求出每个元素的二进制表示中1的个数。
//输入描述
//第一行：一个整数n（1≤n≤2×10^5）。
//第二行：n个整数，表示数组a（0≤ai​≤2×10^9，其中1≤i≤n）。
//输出描述
//共一行，输出n个整数，其中第i个数为𝑎𝑖​的二进制中1的个数。
//输入：           输出：
//3                1 2 2
//4 10 6
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e5 + 9;
int f(int x) {
	int res = 0;
	while (x) {
		if (x & 1)res++;
		x >>= 1;
	}
	return res;
}
int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int n; cin >> n;
	for (int i = 1; i <= n; i++) {
		int x; cin >> x;
		cout << f(x) << " ";
		/*bitset<N>m(x);
		* 也可以用bitset来做
		cout << m.count() << "\n";*/
	}
}